from typing import Callable, List

# 存储全局变量
progress_value = 0.0

# 存储所有需要更新的回调函数
observers: List[Callable] = []


# 添加观察者
def add_observer(callback: Callable):
    observers.append(callback)


# 通知所有观察者
def notify_observers():
    for observer in observers:
        observer()


# 设置全局变量并通知观察者
def set_progress(value: float):
    global progress_value
    progress_value = value
    notify_observers()


# 获取全局变量
def get_progress() -> float:
    return progress_value
